<!DOCTYPE html>
<html data-ng-app="app" data-ng-controller="RootCtrl as rootCtrl">
<head>
    <meta charset="utf-8">
    <title>数人云</title>
    <base href="/">
    <!--build:css css/style.css-->
    <link rel="stylesheet" type="text/css"
          href="bower_components/angular-ui-notification/dist/angular-ui-notification.min.css">
    <link rel="stylesheet" type="text/css" href="bower_components/angular/angular-csp.css">
    <link rel="stylesheet" type="text/css" href="bower_components/font-awesome/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="bower_components/angular-material/angular-material.css">
    <link rel="stylesheet" type="text/css" href="bower_components/angular-material-data-table/dist/md-data-table.css">
    <link rel="stylesheet" type="text/css" href="bower_components/angular-loading-bar/build/loading-bar.css">
    <link rel="stylesheet" type="text/css" href="bower_components/codemirror/lib/codemirror.css">
    <link rel="stylesheet" type="text/css" href="bower_components/codemirror/theme/midnight.css">
    <link rel="stylesheet" type="text/css" href="bower_components/nvd3/build/nv.d3.css">
    <link rel="stylesheet" type="text/css" href="css/swarm.css">
    <!--endbuild-->
    <link rel="shortcut icon" type="image/x-icon" href="pics/favicon.ico"/>
</head>

<body ng-cloak>
<div layout="row" id="main">

    <aside id="sidebar-main" flex="none" layout="column" ng-class="{'min-aside': rootCtrl.isShortMenu}">
        <a href="#" class="logo" flex="none">
            <img src="pics/logo-white-full.svg" ng-if="!rootCtrl.isShortMenu">
            <img src="pics/logo-white-ico.svg" ng-if="rootCtrl.isShortMenu">
        </a>
        <ul>
            <li title="项目" data-ui-sref-active="active">
                <md-button data-ui-sref="stack" data-ui-sref-opts="{reload: true, inherit: false}" id="index-stack">
                    <i class="fa fa-stack-overflow"></i>
                    {/'Stack' | translate/}
                </md-button>
            </li>

            <li title="镜像" data-ui-sref-active="active" dm-display-components="registry">
                <md-button data-ui-sref="registry" data-ui-sref-opts="{inherit: false}" id="index-registry">
                    <i class="fa fa-shopping-cart"></i>
                    {/'Image' | translate/}
                </md-button>
            </li>

            <li title="设施">
                <md-button ng-disabled="true">
                    <i class="fa fa fa-building"></i>
                    {/'Architecture' | translate/}
                </md-button>
                <ul>
                    <li title="主机" data-ui-sref-active="active">
                        <md-button data-ui-sref="node" data-ui-sref-opts="{inherit: false}" id="index-node">
                            <i class="fa fa-server"></i>
                            {/'Node' | translate/}
                        </md-button>
                    </li>

                    <li title="网络" data-ui-sref-active="active">
                        <md-button data-ui-sref="network" data-ui-sref-opts="{inherit: false}" id="index-network">
                            <i class="fa fa-sitemap"></i>
                            {/'Network' | translate/}
                        </md-button>
                    </li>

                    <li title="ReAuth" data-ui-sref-active="active" dm-display-components="registryauth">
                        <md-button data-ui-sref="registryAuth" data-ui-sref-opts="{inherit: false}"
                                   id="index-registryAuth">
                            <i class="fa fa-archive" aria-hidden="true"></i>
                            {/'Registry Auth' | translate/}
                        </md-button>
                    </li>
                </ul>
            </li>

            <li title="设置" data-ui-sref-active="active">
                <md-button data-ui-sref="misc" data-ui-sref-opts="{inherit: false}" id="index-misc"><i
                        class="fa fa-cogs"></i>
                    {/'Information' | translate/}
                </md-button>
            </li>
        </ul>
    </aside>

    <div flex layout="column">
        <nav id="nav-main" layout="row" layout-align="space-between center" flex="none">
            <div flex="auto" layout="row" layout-align="start center">
                <md-button class="md-icon-button" aria-label="Settings" flex="none"
                           ng-click="rootCtrl.isShortMenu = !rootCtrl.isShortMenu">
                    <i class="fa fa-angle-double-left" ng-if="!rootCtrl.isShortMenu"></i>
                    <i class="fa fa-angle-double-right" ng-if="rootCtrl.isShortMenu"></i>
                </md-button>
                <div ncy-breadcrumb></div>
            </div>

            <md-toolbar flex="none">
                <div class="md-toolbar-tools">
                    <md-button class="md-icon-button" aria-label="Search" ng-click="rootCtrl.openSearch()"
                               id="index-openSearch" dm-display-components="search">
                        <i class="fa fa-search"></i>
                    </md-button>
                    <!--
                    <md-button class="md-icon-button" aria-label="More" ng-click="rootCtrl.noticeNav.buildToggler()"
                               ng-hide="rootCtrl.noticeNav.isOpenNav()">
                        <i class="fa fa-bell"></i>
                    </md-button>
                    -->
                    <md-menu-bar>
                        <md-menu>
                            <md-button class="md-icon-button" aria-label="More" ng-click="$mdOpenMenu($event)"
                                       id="index-menu">
                                <i class="fa fa-user"></i>
                            </md-button>
                            <md-menu-content width="3">
                                <md-menu-item dm-display-components="license">
                                    <md-button data-ng-click="rootCtrl.regLicense($event)" id="index-license">
                                        <md-icon md-svg-src="pics/ic_fingerprint_black_24px.svg"
                                                 aria-label="ic_power_settings"></md-icon>
                                        {/'Activation' | translate/}
                                    </md-button>
                                </md-menu-item>
                                <md-menu-divider dm-display-components="license"></md-menu-divider>
                                <md-menu-item>
                                    <md-button data-ng-click="rootCtrl.logout()" id="index-logout">
                                        <md-icon md-svg-src="pics/ic_power_settings.svg"
                                                 aria-label="ic_power_settings"></md-icon>
                                        {/'LOGOUT' | translate /}
                                    </md-button>
                                </md-menu-item>
                                <md-menu-divider></md-menu-divider>
                                <md-menu-item>
                                    <md-menu>
                                        <md-button ng-click="$mdOpenMenu()">
                                            {/'Language' | translate/}
                                        </md-button>
                                        <md-menu-content width="2">
                                            <md-menu-item type="radio" ng-model="rootCtrl.language" value="en">English
                                            </md-menu-item>
                                            <md-menu-item type="radio" ng-model="rootCtrl.language" value="zh-CN">简体中文
                                            </md-menu-item>
                                        </md-menu-content>
                                    </md-menu>
                                </md-menu-item>
                            </md-menu-content>
                        </md-menu>
                    </md-menu-bar>
                </div>
            </md-toolbar>
        </nav>

        <div id="container-main" data-ui-view></div>

        <div id="search-main" ng-show="rootCtrl.isSearch">
            <form style="">
                <md-autocomplete
                        md-input-id="autoCompleteSearch"
                        dm-display-components="search"
                        md-no-cache="false"
                        md-selected-item="rootCtrl.selectedItem"
                        md-search-text="rootCtrl.searchText"
                        md-items="item in rootCtrl.querySearch(rootCtrl.searchText)"
                        md-item-text="item.Name ? item.Name : item.ID"
                        md-min-length="1"
                        placeholder="{/'have a try ...' | translate/}"
                        md-delay="500"
                        md-selected-item-change="rootCtrl.searchJump(item)" class="search-header">
                    <md-item-template>
                        <div>
                            <span class="item-title">
                                <i class="fa"
                                   ng-class="{'fa-server': item.Type === 'node',
                                   'fa-stack-overflow': item.Type === 'stack', 'fa-wrench': item.Type === 'service',
                                   'fa-cube': item.Type === 'task', 'fa-sitemap': item.Type === 'network',
                                   'fa-file-archive-o': item.Type === 'volume'}"></i>
                                <span ng-show="item.Name">Name<i>{/item.Name/}</i></span>
                            </span>
                            <span class="item-metadata">
                                <span class="item-metastat" ng-show="item.ID">ID<i>{/item.ID/}</i></span>
                            </span>
                        </div>
                    </md-item-template>
                    <md-not-found>
                        {/'Empty records ...' | translate/}
                    </md-not-found>
                </md-autocomplete>
            </form>
            <div ng-click="rootCtrl.isSearch = false" class="blank-hidden"></div>
        </div>

        <md-sidenav class="md-sidenav-right md-whiteframe-z2" md-component-id="noticeNav">
            <md-toolbar class="md-theme-light">
                <h1 class="md-toolbar-tools">公告栏</h1>
            </md-toolbar>
            <md-content layout-padding>
                <div>
                    <md-content>
                        <div>暂无公告</div>
                    </md-content>
                </div>
            </md-content>
        </md-sidenav>
    </div>
</div>

<div class="licence-alert" ng-if="!licenseValidFlag">
    {/'License will be expired' | translate/}
    <a href="http://shurenyun.mikecrm.com/FTzYAr" target="_blank" id="index-get-licence">立即获取序列号</a>
</div>
<a href="http://shurenyun.mikecrm.com/FCNKya" class="feedback-btn" target="_blank" id="index-mikecrm">
    <i class="fa fa-commenting" aria-hidden="true"></i>
    <md-tooltip md-direction="right">问题意见留言</md-tooltip>
</a>

<!--build:js js/script.js-->
<script src="bower_components/jquery/dist/jquery.js" type="text/javascript"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.js" type="text/javascript"></script>
<script src="bower_components/codemirror/lib/codemirror.js" type="text/javascript"></script>
<script src="bower_components/codemirror/mode/javascript/javascript.js" type="text/javascript"></script>
<!--endbuild-->

<!--build:js js/angular.js-->
<script src="bower_components/angular/angular.js" type="text/javascript"></script>
<script src="bower_components/angular-messages/angular-messages.js" type="text/javascript"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.js" type="text/javascript"></script>
<script src="bower_components/angular-ui-codemirror/ui-codemirror.js" type="text/javascript"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js" type="text/javascript"></script>
<script src="bower_components/angular-aria/angular-aria.js" type="text/javascript"></script>
<script src="bower_components/angular-material/angular-material.js" type="text/javascript"></script>
<script src="bower_components/ngSocket/dist/ngSocket.js"></script>
<script src="bower_components/angular-animate/angular-animate.min.js" type="text/javascript"></script>
<script src="bower_components/angular-ui-notification/dist/angular-ui-notification.min.js"
        type="text/javascript"></script>
<script src="bower_components/angular-material-data-table/dist/md-data-table.js" type="text/javascript"></script>
<script src="bower_components/angular-loading-bar/build/loading-bar.js" type="text/javascript"></script>
<script src="bower_components/clipboard/dist/clipboard.min.js" type="text/javascript"></script>
<script src="bower_components/ngclipboard/dist/ngclipboard.min.js" type="text/javascript"></script>
<script src="bower_components/d3/d3.js" type="text/javascript"></script>
<script src="bower_components/nvd3/build/nv.d3.js" type="text/javascript"></script>
<script src="bower_components/angular-nvd3/dist/angular-nvd3.js" type="text/javascript"></script>
<script src="bower_components/angular-breadcrumb/dist/angular-breadcrumb.js" type="text/javascript"></script>
<script src="lib/hterm.js" type="text/javascript"></script>
<script src="bower_components/file-saver.js/FileSaver.js"></script>
<script src="bower_components/blob-polyfill/Blob.js"></script>
<script src="bower_components/angular-file-saver/dist/angular-file-saver.min.js"></script>
<script src="bower_components/angular-translate/angular-translate.js"></script>
<script src="bower_components/angular-filter/dist/angular-filter.js"></script>
<script src="bower_components/ngFlowGrid/src/ngFlowGrid.js"></script>
<!--endbuild-->

<!-- rev-hash -->
<script src="conf.js" type="text/javascript"></script>
<!-- end -->

<!--build:js(dist) js/main.js-->
<script src="src/constants.js" type="text/javascript"></script>

<script src="src/app.module.js" type="text/javascript"></script>
<script src="src/app.run.js" type="text/javascript"></script>
<script src="src/app.config.js" type="text/javascript"></script>
<script src="src/app.ctrl.js" type="text/javascript"></script>
<script src="src/app.constants.run.js" type="text/javascript"></script>

<script src="src/utils/utils.module.js" type="text/javascript"></script>
<script src="src/utils/utils.config.js" type="text/javascript"></script>
<script src="src/utils/i18n/zh-cn.config.js" type="text/javascript"></script>
<script src="src/utils/i18n/en-us.config.js" type="text/javascript"></script>
<script src="src/utils/i18n/en.config.js" type="text/javascript"></script>
<script src="src/utils/services/utils.service.js" type="text/javascript"></script>
<script src="src/utils/services/ghttp.service.js" type="text/javascript"></script>
<script src="src/utils/services/mdTable.service.js" type="text/javascript"></script>
<script src="src/utils/services/mdSideNav.service.js" type="text/javascript"></script>
<script src="src/utils/services/timing.service.js" type="text/javascript"></script>
<script src="src/utils/services/stream.service.js" type="text/javascript"></script>
<script src="src/utils/services/chart-util.service.js" type="text/javascript"></script>
<script src="src/utils/services/stats-chart.service.js" type="text/javascript"></script>
<script src="src/utils/services/tty.service.js" type="text/javascript"></script>
<script src="src/filter/slice-string.filter.js" type="text/javascript"></script>
<script src="src/filter/size.filter.js" type="text/javascript"></script>
<script src="src/filter/net-rate.filter.js" type="text/javascript"></script>
<script src="src/filter/status-zh.filter.js" type="text/javascript"></script>
<script src="src/filter/keylength.filter.js" type="text/javascript"></script>
<script src="src/filter/ip.filter.js" type="text/javascript"></script>
<script src="src/utils/modals/confirm.service.js" type="text/javascript"></script>
<script src="src/utils/modals/alert.service.js" type="text/javascript"></script>
<script src="src/utils/modals/form.service.js" type="text/javascript"></script>

<script src="src/layout/layout.module.js" type="text/javascript"></script>
<script src="src/layout/services/layout-backend.service.js" type="text/javascript"></script>

<script src="src/user/user.module.js" type="text/javascript"></script>
<script src="src/user/services/user-backend.service.js" type="text/javascript"></script>
<script src="src/user/services/user-curd.service.js" type="text/javascript"></script>

<script src="src/stack/stack.module.js" type="text/javascript"></script>
<script src="src/stack/stack.config.js" type="text/javascript"></script>
<script src="src/stack/stack.route.js" type="text/javascript"></script>
<script src="src/stack/services/stack-backend.service.js" type="text/javascript"></script>
<script src="src/stack/services/stack-curd.service.js" type="text/javascript"></script>
<script src="src/stack/modals/create-select.service.js" type="text/javascript"></script>
<script src="src/stack/create/create-by-json.ctrl.js" type="text/javascript"></script>
<script src="src/stack/create/create-by-form.ctrl.js" type="text/javascript"></script>
<script src="src/stack/list/list.ctrl.js" type="text/javascript"></script>
<script src="src/stack/detail/detail.ctrl.js" type="text/javascript"></script>
<script src="src/stack/detail/service.ctrl.js" type="text/javascript"></script>
<script src="src/stack/service-detail/detail.ctrl.js" type="text/javascript"></script>
<script src="src/stack/service-detail/task.ctrl.js" type="text/javascript"></script>
<script src="src/stack/service-detail/config.ctrl.js" type="text/javascript"></script>
<script src="src/stack/service-detail/log.ctrl.js" type="text/javascript"></script>
<script src="src/stack/service-detail/stats.ctrl.js" type="text/javascript"></script>
<script src="src/stack/service-detail/cd.ctrl.js" type="text/javascript"></script>
<script src="src/stack/service-update/update.ctrl.js" type="text/javascript"></script>
<script src="src/stack/service-detail/discovery.ctrl.js" type="text/javascript"></script>

<script src="src/node/node.module.js" type="text/javascript"></script>
<script src="src/node/node.config.js" type="text/javascript"></script>
<script src="src/node/node.route.js" type="text/javascript"></script>
<script src="src/node/services/node-backend.service.js" type="text/javascript"></script>
<script src="src/node/services/node-curd.service.js" type="text/javascript"></script>
<script src="src/node/create/create.ctrl.js" type="text/javascript"></script>
<script src="src/node/create-volume/create.ctrl.js" type="text/javascript"></script>
<script src="src/node/create-network/create.ctrl.js" type="text/javascript"></script>
<script src="src/node/list/list.ctrl.js" type="text/javascript"></script>
<script src="src/node/modals/form-labels.service.js" type="text/javascript"></script>
<script src="src/node/detail/detail.ctrl.js" type="text/javascript"></script>
<script src="src/node/detail/config.ctrl.js" type="text/javascript"></script>
<script src="src/node/detail/container.ctrl.js" type="text/javascript"></script>
<script src="src/node/detail/network.ctrl.js" type="text/javascript"></script>
<script src="src/node/detail/volume.ctrl.js" type="text/javascript"></script>
<script src="src/node/detail/image.ctrl.js" type="text/javascript"></script>
<script src="src/node/image-detail/detail.ctrl.js" type="text/javascript"></script>
<script src="src/node/image-detail/config.ctrl.js" type="text/javascript"></script>
<script src="src/node/image-detail/layer.ctrl.js" type="text/javascript"></script>
<script src="src/node/container-detail/detail.ctrl.js" type="text/javascript"></script>
<script src="src/node/container-detail/config.ctrl.js" type="text/javascript"></script>
<script src="src/node/container-detail/log.ctrl.js" type="text/javascript"></script>
<script src="src/node/container-detail/stats.ctrl.js" type="text/javascript"></script>
<script src="src/node/container-detail/diff.ctrl.js" type="text/javascript"></script>
<script src="src/node/container-detail/terminal.ctrl.js" type="text/javascript"></script>
<script src="src/node/network-detail/detail.ctrl.js" type="text/javascript"></script>
<script src="src/node/network-detail/config.ctrl.js" type="text/javascript"></script>
<script src="src/node/volume-detail/detail.ctrl.js" type="text/javascript"></script>
<script src="src/node/volume-detail/config.ctrl.js" type="text/javascript"></script>

<script src="src/network/network.module.js" type="text/javascript"></script>
<script src="src/network/network.config.js" type="text/javascript"></script>
<script src="src/network/network.route.js" type="text/javascript"></script>
<script src="src/network/services/network-backend.service.js" type="text/javascript"></script>
<script src="src/network/services/network-curd-service.js" type="text/javascript"></script>
<script src="src/network/create/create.ctrl.js" type="text/javascript"></script>
<script src="src/network/list/list.ctrl.js" type="text/javascript"></script>
<script src="src/network/detail/detail.ctrl.js" type="text/javascript"></script>
<script src="src/network/detail/config.ctrl.js" type="text/javascript"></script>

<script src="src/misc/misc.module.js" type="text/javascript"></script>
<script src="src/misc/misc.config.js" type="text/javascript"></script>
<script src="src/misc/misc.route.js" type="text/javascript"></script>
<script src="src/misc/services/misc-backend.service.js" type="text/javascript"></script>
<script src="src/misc/craneconfig/craneconfig.ctrl.js" type="text/javascript"></script>

<script src="src/registry/registry.module.js" type="text/javascript"></script>
<script src="src/registry/registry.route.js" type="text/javascript"></script>
<script src="src/registry/registry.config.js" type="text/javascript"></script>
<script src="src/registry/services/registry-backend.service.js" type="text/javascript"></script>
<script src="src/registry/services/registry-curd.service.js" type="text/javascript"></script>
<script src="src/registry/list/public.ctrl.js" type="text/javascript"></script>
<script src="src/registry/list/mine.ctrl.js" type="text/javascript"></script>
<script src="src/registry/list/catalog.ctrl.js" type="text/javascript"></script>
<script src="src/registry/image-detail/detail.ctrl.js" type="text/javascript"></script>
<script src="src/registry/image-detail/history.ctrl.js" type="text/javascript"></script>
<script src="src/registry/catalog-detail/detail.ctrl.js" type="text/javascript"></script>
<script src="src/registry/create-update-catalog/create-update.ctrl.js" type="text/javascript"></script>

<script src="src/registry-auth/registry-auth.module.js" type="text/javascript"></script>
<script src="src/registry-auth/registry-auth.route.js" type="text/javascript"></script>
<script src="src/registry-auth/registry-auth.config.js" type="text/javascript"></script>
<script src="src/registry-auth/services/registry-auth-backend.service.js" type="text/javascript"></script>
<script src="src/registry-auth/services/registry-auth-curd.service.js" type="text/javascript"></script>
<script src="src/registry-auth/create/create.ctrl.js" type="text/javascript"></script>
<script src="src/registry-auth/list/list.ctrl.js" type="text/javascript"></script>

<script src="src/directives/dm-permit-click.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-dynamic-fields/dynamic-field-vali.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-dynamic-field.directive.js" type="text/javascript"></script>
<script src="src/directives/positive-integer.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-tab-sref.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-trigger-prev-click.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-check-include.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-no-equal.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-password.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-empty-display.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-display-components.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-doc-link.directive.js" type="text/javascript"></script>
<script src="src/directives/dm-focus-input.directive.js" type="text/javascript"></script>
<!--endbuild-->


<!--build:js js/template.js-->
<!-- inject:template.js -->
<!-- angular templates will be automatically converted in js and inserted here -->
<!-- endinject -->
<!--endbuild-->
</body>
</html>
